package com.myh.gulimall.product.config;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * @Description: // 类说明，在创建类时要填写
 * @ClassName: Swagger3Config    // 类名，会自动填充
 * @Author: MYH          // 创建者
 * @Date: 2024/1/30 14:49   // 时间
 * @Version: 1.0     // 版本
 */
@Configuration
@EnableOpenApi  //开启swagger
public class Swagger3Config {

    @Bean
    public Docket createDocker() {
        return new Docket(DocumentationType.OAS_30)    //设置其文档类型
                .apiInfo(apiInfo())  //设置其页面信息：抬头/描述/版本号/个人信息/
                .select()   //设置扫描的文件--只要类上有@Api注解就扫描
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .build()
                .enable(true)   //swagger3的开关，在生产环境当中为了资源的合理利用是要关闭的--false。
                .groupName("YuHui Ma");
    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("谷粒商城")
                .description("所有分布式微服务下的接口文档")
                .version("V1.0")
                .contact(new Contact("YuHui Ma", "http://www.baidu.com", "ma13474114737@163.cpm"))
                .build();
    }
}
